1. Field of the Invention
The present invention relates generally to cathode ray tube (CRT) displays and particularly to apparatus and methodology for generating video information for use in displaying alphanumeric characters in a raster scan CRT.
2. Description of the Prior Art
The image on a CRT is generated by using an electron beam to stimulate selected areas of a phosphorescent material located on the inside of the CRT screen. The scanning of the CRT face is accomplished by deflecting the electron beam relatively rapidly in one direction, usually horizontal, and relatively slowly in a second direction, usually vertical. The phosphorescent material on the screen is continuous, but the screen can be considered to consist of a large number of generally horizontal, parallel "raster lines" or lines of displayed information. As the beam scans along a raster line, the information about the level of stimulation to be given a particular area on the raster line is updated at fixed intervals in accordance with a clock pulse or "dot clock". Therefore, each raster line can be further considered to be a series of discrete segments or "dots" which are individually stimulatable by the electron beam.
The electron beam normally performs 50 or 60 "frames" or complete scans of the CRT screen per second, depending on the external electrical power available. From the viewpoint of an observer facing the screen, the beam begins a frame at the left side of the top raster line of the CRT and moves substantially horizontally along the line to the right side of the screen stimulating each dot to the appropriate level to create the desired image. The beam then performs a horizontal retrace to the left side of the next lower raster line and again begins to scan horizontally to the right. This continues until the beam reaches the right side of the lowest raster line, at which time a vertical retrace is performed during which the beam moves back to the beginning of the top raster line to begin the next frame. No information is displayed during either horizontal or vertical retrace.
Characters displayed on the screen are formed by an arrangement of dots. A character area 7 dots wide and 9 dots (i.e. 9 scan lines) high is adequate to allow display of all common alphanumeric characters. The specific character desired is created by stimulating the appropriate pattern of dots withn the 7.times.9 dot character area. To ensure adequate horizontal spacing between adjacent characters in a line or "row" of text and vertical spacing between the rows, the character area is typically considered to be part of a character field, generally 10 dots wide by 12 scan lines high. The size of the character field and the characteristics of the terminal determine the amount of information that can be displayed on the monitor. If the terminal, for example, displays 1000 discrete dots per scan line, then, at 10 dots per character, up to 100 characters can be shown on a horizontal row. Similarly, if the terminal performs, for example, 240 horizontal scans during each vertical scan, then, at 12 scan lins per character row, 20 rows of character information can be shown.
Some prior art terminals are capable of displaying more than one dot density, but in these terminals only one density may be used during any one frame. That is, during a given frame, every raster line of the display will have exactly the same number of dots and therefore the same number of character fields per line. This substantially limits the ability of the CRT user to display his text on the screen.
Another problem in the prior art is the extremely high work load of the CPU which can result from user changes to the display. In the prior art, data to be displayed is commonly stored in sequential memory locations in terminal memory. The first character to be displayed (i.e. the leftmost character of the top row) is not necessarily located in the first memory location and is typically indicated by a "top of page" pointer. The leftmost character of displayed row 2 is stored in the memory location immediately following the rightmost character of row 1, and so on, with the rightmost character of the last row being the end of the "string". If, for example, a character is to be inserted into the display and therefore inserted into the "string" of characters sequentially stored in memory, the addresses of all characters following the insertion must be changed to reflect their new position in the string. If the insertion occurs near the top of the screen, a substantial amount of processor work must be performed to change the memory locations of all following characters. To complete the operation during vertical retrace requires the terminal to have a very fast CPU and memory. To allow the operation to continue over multiple frames presents the terminal user with a visible "ripple" effect as the memory is updated.
A related prior art problem is the high processor workload resulting from the method of performing vertical or horizontal scrolling. To avoid display degradation or delays, prior art terminals which provide scrolling capability must use a processor capable of performing the data movements required under the prior art method.
Yet another prior art problem is the requirement to generate the dot information for a character field that is, typically, 10 dots wide. "Standard" ROM's (read only memories) are unavailable with 10 outputs and, while the actual character will occupy only a subset of the field, typically 7 dots, the remaining dots cannot always be blanked because of other terminal requirements such as the occasional need to display a solid horizontal line across part or all of the screen. Prior art terminals, therefore, have generally been required to use either a "custom" 10-bit ROM or an 8-bit ROM in conjunction with a 4-bit ROM. Either alternative adds to the cost of the terminal.
The present invention relates to a novel circuit and method for resolving the above prior art problems.